//283.移动零问题

/**
 * 定义两个指针
 * cur：从左往右扫描数组，遍历数组
 * dest：已处理的区间内，非零元素的最后一个位置
 * 如何做到：
 * 1.遇到0元素：cur++
 * 2.遇到非0元素：
 *    dest++
 *    dest交换与cur交换
 *    cur++
 */
class Solution {
    public void moveZeroes(int[] nums) {
        for(int cur = 0,dest = -1;cur < nums.length;cur++){
            if(nums[cur] != 0){
                dest++;
                int tmp = nums[dest];
                nums[dest] = nums[cur];
                nums[cur] = tmp;
            }
        }
    }

    /*public void moveZeroes(int[] nums) {
        int cur = 0;
        int dest = -1;
        while(cur < nums.length){
            if(nums[cur] != 0){
                dest++;
                int tmp = nums[dest];
                nums[dest] = nums[cur];
                nums[cur] = tmp;
            }
            cur++;
        }
    }
  */
}